/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package game_logic;

/**
 *
 * @author Danilo
 */
public class Pawn {
    private Board board;
    private Color color;
    private int id;
    private int position;
    private int counterSteps;
    private boolean finalPath;
    
    /**
     * Construtor da classe peão.
     * @param board O tabuleiro ao qual o peão está associado.
     * @param color A cor do peão.
     * @param id O id do peão.
     */
    public Pawn( Board board, Color color, int id ){
        this.board = board;
        this.color = color;
        this.id = id;
        counterSteps = 0;
        finalPath = false;
        position = -1;
    }

    /**
     * Retorna uma referência para o tabuleiro ao qual o peão pertence.
     * @return O tabuleiro ao qual o peão pertence.
     */
    public Board getBoard() {
        return board;
    }

    /**
     * Retorna a cor do peão.
     * @return A cor do peão.
     */
    public Color getColor() {
        return color;
    }

    /**
     * Retorna o id do peão.
     * @return O identificador do peão.
     */
    public int getId() {
        return id;
    }

    /**
     * Retorna a posição do tabuleiro que o peão ocupa.
     * @return A posição do tabuleiro ao qual o peão está posicionado.
     */
    public int getPosition() {
        return position;
    }

    /**
     * Modifica a posição do peão no tabuleiro.
     *
     * @param position A nova posição do peão.
     */
    public void setPosition(int position) {
        this.position = position;
    }

    /**
     * Retorna o número de passos dado pelo peão.
     * @return Número de passos dado pelo peão.
     */
    public int getCounterSteps() {
        return counterSteps;
    }

    /**
     * Modifica a flag que indica se o peão está na reta final.
     *
     * @param b True, se o peão estiver na reta final, False, caso contrário.
     */
    void setFinalPath(boolean b) {
        finalPath = b;
    }

    /**
     * Indica se o peão está na reta final.
     *
     * @return True, se o peão estiver na reta final, False, caso contrário.
     */
    public boolean isFinalPath() {
        return finalPath;
    }

    public void clearSteps() {
        counterSteps = 0;
    }

}
